/*
 * @Author: ZhangXiaodong
 * @Date: 2025-04-16 00:37:18
 * @LastEditors: ZhangXiaodong
 * @LastEditTime: 2025-04-26 00:01:10
 * @Description: 用户登陆
 * @FilePath: /blog-ost/src/controller/user/login.js
 */

const mysqlPool = require('../../db/mysql/db.pool');

// 定义默认参数对象
const DEFAULT_BODY = { username: '', password: '' };

/**
 * 用户登录函数，从数据库中验证用户信息
 * @param {Object} body - 包含用户名和密码的对象
 * @param {string} body.username - 用户的用户名
 * @param {string} body.password - 用户的密码
 * @returns {Promise<Object|boolean>} - 如果找到用户返回用户信息，否则返回 false
 */
const login = (body = DEFAULT_BODY) => {
    const { username, password } = body;
    // 简单验证输入参数
    if (!username || !password) {
        return Promise.resolve(false);
    }

    const sql = `SELECT * FROM users WHERE username = ? AND password = ?`;

    return mysqlPool.exec(sql, [username, password])
      .then((res) => {
            // 打印日志使用更专业的日志库会更好，这里暂时保留 console.log
            console.log(res, '用户登陆返回结构', [username, password]);
            return res.length > 0 ? res[0] : false;
        })
      .catch((error) => {
            // 捕获并处理数据库查询错误
            console.error('用户登录查询数据库出错:', error);
            return false;
        });
};

module.exports = login;